もうUnicodeWarningで悩まない! Windows版 AWS CLI でバンドルされるPythonが3系になりました。
好物はインフラとフロントエンドのかじわらゆたかです。 Windows環境でAWS CLIを導入したところ、バンドルされるPythonが3.6 となっておりました。 これにより、実行された時に表示されるUnicodeWarning が表示されないことになります。
Windows版の AWS CLI の導入
AWSの公式サイトのAWS コマンドラインインターフェイス からWindowsのインストーラーをダウンロードしてみると以前とファイル名がことなります。
- 以前
https://s3.amazonaws.com/aws-cli/AWSCLI64.msi
- 2019/09/10 現在
https://s3.amazonaws.com/aws-cli/AWSCLI64PY3.msi
ファイル名からも分かる通り、同梱されるPythonが3系になっている模様です。
導入していろいろ確認してみた。
Windowsインスタンスを立ち上げてダウンロードしてなんて待ちきれないのでユーザーデータにダウンロードからインストールまで行うようにして立ち上がった途端検証出来るようにします。
以下のユーザーデータによるダウンロードは以下のAMIで検証しました。
- Windows_Server-2019-English-Full-Base-2019.08.16 (ami-0342e79d2629aa47f)
- Windows_Server-2016-English-Full-Base-2019.08.16 (ami-068721b34f85a5a99)
- Windows_Server-2012-R2_RTM-English-64Bit-Base-2019.08.16 (ami-0b2a38bdf41532387)
<powershell> # ダウンロード Invoke-WebRequest -Uri "https://s3.amazonaws.com/aws-cli/AWSCLI64PY3.msi" -OutFile "$(Get-Location -PSProvider Filesystem)\AWSCLI64PY3.msi" | Out-File C:\Users\\Administrator\cli-download.log -Encoding utf8 # インストール Start-Process -FilePath "msiexec.exe" -ArgumentList @('/i', "$(Get-Location -PSProvider Filesystem)\AWSCLI64PY3.msi", '/passive') -Wait -PassThru | Out-File C:\Users\\Administrator\cli-install.log -Encoding utf8 </powershell>
なお、上記はPowerShellのスクリプトですので、普通にPowerShell上で動かすことでAWS CLIのダウンロードとインストールが行えます。
Invoke-WebRequest -Uri "https://s3.amazonaws.com/aws-cli/AWSCLI64PY3.msi" -OutFile "$(Get-Location -PSProvider Filesystem)\AWSCLI64PY3.msi" | Out-File C:\Users\\Administrator\cli-download.log -Encoding utf8 Start-Process -FilePath "msiexec.exe" -ArgumentList @('/i', "$(Get-Location -PSProvider Filesystem)\AWSCLI64PY3.msi", '/passive') -Wait -PassThru | Out-File C:\Users\\Administrator\cli-install.log -Encoding utf8
さっそく、入っているPythonのバージョンを調べてみたいと思います。
C:\Program Files\Amazon\AWSCLI\runtime>python Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
Python 3.6.0が入っていることがわかります。
以前のPython2系で実行した際に UnicodeWarning
が表示されたコマンドを実行してみます。
C:\Program Files\Amazon\AWSCLI\runtime>aws s3 ls s3://cm-kajiwara-s3-event-test-us-east-1 2019-08-23 11:50:40 0 classmethod
以前のAWS CLIでは表示されていたUnicodeWarning
がでなくなったことがわかります。
最後に
Windows環境でAWS CLIを動かすと警告メッセージが出ていたことに頭を悩ませ、 頑張ってPython 3を導入していたと言ったケースもあったことでしょう。 これからは普通にAWS CLIをインストーラーから入れるだけで、これらのメッセージに悩まされることは無くなることとなります。